import ctrlMgr from "./input/InputCtrl";
import resMgr from "./managers/ResMgr";
import utilsMgr from "./common/Utils";
import uiMgr from "./managers/UiMgr";
import soundMgr from "./managers/SoundMgr";
import i18n from "./locale/I18n";
import globalVarient from "./common/Global";
import { Logger } from "./common/Logger";
import dataMgr from "./managers/DataMgr";

/**
 * @en : Awesome Agent is a frame work for Cocos Creator, "aa" is eaier to type and remember
 * @zh : aa 框架是Cocos Creator 的游戏框架, aa 是输入最快的
 */
export namespace aa {
    /**
   * @en : res for loading resources and manage all assets(pool included)
   * @zh : res 用于加载资源和管理所有资产（包括资源池）
   */
    export const res = resMgr;
    /**
     * @en : sound is the module for control the audio fx and bgms
     * @zh : sound 是控制音频效果和背景音乐的模块
     */
    export const sound = soundMgr;
    /**
     * @en : ui is the module to load and remove UI 
     * @zh : ui 是加载和移除用户界面的模块
     */
    export const ui = uiMgr;
    /**
    * @en : controller module for keyboard and joystick
    * @zh : ctrl 是键盘和操纵杆的控制器模块
    */
    export const ctrl = ctrlMgr;
    /**
    * @en : data module for load and save data
    * @zh : data 是数据储存和加载模块
    */
    export const data = dataMgr;
    /**
     * @en : common utils for game development
     * @zh : utils 是游戏开发的常用工具模块
     */
    export const utils = utilsMgr;
    /**
     * @en : common global properties
     * @zh : global 是常用的全局属性
     */
    export const global = globalVarient;

    /**
     * @en : i18n localiztion
     * @zh : locale 是 i18n 的本地化
     */
    export const locale = i18n;

    /**
     * @en : common states can add custom state
     * @zh : 常用状态可以新增
     */
    export const states = {
        /**
         * @en : if game is paused
         * @zh : 游戏是否暂停
         */
        isPause: true,
    }
    /**
     * @en : log    
     * @zh : log
     */
    export const log = Logger.log;

}




